#ifndef CONSULTOR_H_
#define CONSULTOR_H_

#include "Cola.h"
#include "Mensajes.h"
#include "SIGINT_Handler.h"
#include <string>
#include <vector>

class Consultor {
	private:
		Cola<mensaje> *deServidor, *aCliente;
		mensaje peticion;
		std::string nombre, peticionDato;
		
		void resolverConsulta();
		bool resolverModificacion();
		bool resolverAlta();
		
		void recibirPeticion();
		void responderPeticion(std::string respuesta);
		std::string leerResultado(std::string nombreArchivo);
		void generarResultado(std::string regexp, std::string archivoSalida);
		//void actualizarBaseDatos();
		bool altaRepetida();
		bool tieneRepetido(std::vector<std::string> datos);
		bool archivoVacio(std::string nombreArchivo);
		
		
		SIGINT_Handler sigint_handler;
		
	public:
		Consultor();
		virtual ~Consultor();
		int ejecutar();
};

#endif /* CONSULTOR_H_ */
